/**
 * 
 */
package com.shifan.phone.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.shifan.phone.common.Tools;
import com.shifan.phone.dao.AddressModelMapper;
import com.shifan.phone.model.AddressModel;
import com.shifan.phone.service.AddressModelService;

/**
 * 收货地址Service接口实现类
 * @author TangLei
 * @date 2018年12月11日 下午3:43:37
 * @version 1.0
 */
@Service
public class AddressModelServiceImpl implements AddressModelService{
	//注入收货地址Dao接口
	@Resource
	private AddressModelMapper addressModelDao;
	
	/**
	 * 删除
	 * @param addressId 收货地址ID
 	 * @return 影响的行数
	 */
	@Override
	public int deleteByPrimaryKey(String addressId) {
		// 调用收货地址Dao接口里面的删除的方法
		return addressModelDao.deleteByPrimaryKey(addressId);
	}

	/**
     * 增加（一次性增加所有字段）
     * @param record 收货地址对象
     * @return 影响的行数
     */
	@Override
	public int insert(AddressModel record) {
		//得到一个随机数
		String addressId = Tools.getRandomString();
		//给收货地址ID赋值
		record.setAddressId(addressId);
		// 调用收货地址Dao接口里面的增加的方法
		return addressModelDao.insert(record);
	}

	/**
     * 增加（增加一个或多个字段）
     * @param record 收货地址对象
     * @return 影响的行数
     */
	@Override
	public int insertSelective(AddressModel record) {
		//得到一个随机数
		String addressId = Tools.getRandomString();
		//给收货地址ID赋值
		record.setAddressId(addressId);
		// 调用收货地址Dao接口里面的增加的方法
		return addressModelDao.insertSelective(record);
	}

	/**
     * 根据ID查询
     * @param addressId 收货地址ID
     * @return 收货地址对象
     */
	@Override
	public AddressModel selectByPrimaryKey(String addressId) {
		// 调用收货地址Dao接口里面的根据ID查询的方法
		return addressModelDao.selectByPrimaryKey(addressId);
	}

	/**
     * 修改（修改一个或多个字段）
     * @param record 收货地址对象
     * @return 影响的行数
     */
	@Override
	public int updateByPrimaryKeySelective(AddressModel record) {
		// 调用收货地址Dao接口里面的修改的方法
		return addressModelDao.updateByPrimaryKeySelective(record);
	}

	/**
     * 修改（一次性修改所有字段）
     * @param record 收货地址对象
     * @return 影响的行数
     */
	@Override
	public int updateByPrimaryKey(AddressModel record) {
		// 调用收货地址Dao接口里面的修改的方法
		return addressModelDao.updateByPrimaryKey(record);
	}

	/**
     * 根据用户ID查询所有地址
     * @param userId 用户ID
     * @return 收货集合
     */
	@Override
	public List<AddressModel> findByUserIdAllAddress(String userId) {
		//创建一个map集合
		Map<String,Object> map = new HashMap<String,Object>();
		// 调用收货地址Dao接口里面的根据用户ID查询所有的方法
		return addressModelDao.findByUserIdAllAddress(userId);
	}
	
}
